package com.xc.service;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;

import java.net.InetAddress;
import java.util.Date;

/**
 * @Package com.xc.service
 * @Description 服务端业务逻辑
 * @Author kunshan
 * @Date 2021/1/27 11:18 上午
 */
public class NettyServerHandler extends SimpleChannelInboundHandler<String> {

    /**
     * 收到消息时返回信息
     * @param ctx
     * @param msg
     * @throws Exception
     */
    @Override
    protected void channelRead0(ChannelHandlerContext ctx,String msg) throws Exception{
        //收到消息直接打印输出
        System.out.println("服务端接受的消息："+msg);
        if ("quit".equals(msg)) {  //服务端断开的条件
            ctx.close();
        }
        Date date = new Date();
        //返回客户端消息
        ctx.writeAndFlush(date+"\n");

    }

    /**
     * 建立链接时返回消息
     */
    @Override
    public void channelActive(ChannelHandlerContext ctx) throws Exception{
        System.out.println("链接的客户端地址：" + ctx.channel().remoteAddress());
        ctx.writeAndFlush("客户端"+ InetAddress.getLocalHost().getHostName()+"成功与服务器建立链接！\n");
        ctx.writeAndFlush("hahahah!\n");

        super.channelActive(ctx);
    }


}
